// 对webpack进行增量配置
// 修改此处文件后一定要重启当前项目

const { defineConfig } = require('@vue/cli-service')

// 定义一个promise的延时器
const delay = (ms = 300) => {
  return new Promise(resolve => {
    setTimeout(resolve, ms)
  })
}

module.exports = defineConfig({
  transpileDependencies: true,
  // 对开发时服务器进行增量配置
  devServer: {
    // 中间件，利用此中间件，完成mock数据生成
    setupMiddlewares: (middlewares, { app }) => {
      // get请求
      app.get('/api/users', async (req, res) => {
        await delay(5000)
        res.send({
          code: 0,
          msg: 'ok',
          data: [
            {
              id: 1,
              name: '张三',
              age: 20
            },
            {
              id: 2,
              name: '李四',
              age: 21
            },
            {
              id: 3,
              name: '王五',
              age: 23
            }
          ]
        })
      })

      // post请求
      app.post('/api/login', async (req, res) => {
        res.send({
          code: 0,
          msg: 'ok',
          data: {
            id: 1000,
            name: '张三',
            token: 'efewklefjlewfewfjew'
          }
        })
      })

      // 一定要返回middlewares对象
      return middlewares
    }
  }
})
